$(function() {
	module_js.init();
})
/**
 * 模块js
 */
var module_js = {
	/**
	 * 初始化
	 */
	init : function() {
		module_js.initModuleTree();
		module_js.loadModule();
	},
	/**
	 * 树对象
	 */
	zTree : null,
	/**
	 * 当前加载的树形节点
	 */
	moudleTreeNodes : null,
	/**
	 * 模块树的初始化数据
	 */
	zNodes : null,
	/**
	 * 表格对象
	 */
	Table_Obj : null,
	/**
	 * 模块树形属性设置 创建人：lxw 创建时间：2017/04/01
	 * 
	 * @type {{view: {dblClickExpand: boolean, showLine: boolean, selectedMulti:
	 *       boolean}, data: {key: {url: string}, simpleData: {enable: boolean,
	 *       idKey: string, pIdKey: string, rootPId: string}}, callback:
	 *       {onClick: Function}}}
	 */
	setting : {
		view : {
			dblClickExpand : true,
			showLine : false,
			selectedMulti : false,
		// showIcon: false
		},
		data : {
			key : {
				url : "noUrl"
			},
			simpleData : {
				enable : true,
				idKey : "id",
				pIdKey : "parentId",
				rootPId : ""
			}
		},
		callback : {
			onClick : function(event, treeId, treeNode, clickFlag) {
				module_js.moudleTreeNodes = treeNode;
				$("#search_words").val("");
				module_js.searchThis();
			}
		}
	},
	/**
	 * 加载模块树
	 */
	initModuleTree : function() {
		var t = $("#moduleTree");
		$.ajax({
			url : '/crm/module/loadModuleTree',
			type : 'post',
			data : {},
			dataType : 'JSON',
			async : false,
			success : function(data) {
				module_js.zNodes = data;

				t = $.fn.zTree.init(t, module_js.setting, module_js.zNodes);

				module_js.zTree = $.fn.zTree.getZTreeObj("moduleTree");

				var sel_id = "0";

				if (module_js.moudleTreeNodes) {
					sel_id = module_js.moudleTreeNodes.id;
				}
				module_js.moudleTreeNodes = module_js.zTree.getNodeByParam(
						"id", sel_id);
				module_js.zTree.selectNode(module_js.moudleTreeNodes);
				// 展开所有节点
				t.expandAll(true);
				// zTree.expandNode(moudleTreeNodes, true);

			}
		});
	},
	/**
	 * 初始加载
	 */
	loadModule : function() {
		$.ajax({
			url : "/crm/module/findBySpec", // 请求的url地址
			dataType : "json", // 返回格式为json
			async : false,// 请求是否异步，默认为异步，这也是ajax重要特性
			data : {
				pageIndex : 1,
				pageSize : 20,
				puuid : 0,
				moduleName : ""
			}, // 参数值
			type : "post", // 请求方式
			success : function(data) {

				module_js.init_table(data.rows);
				$("#total_records").text(data.total);
				$("#this_page").text(1);
				$("#total_page").text(data.totalPages);
				var url = "/crm/module/findBySpec";
				setCommon({ puuid : 0, moduleName : "" }, module_js.Table_Obj, url);
			},
			error : function() {
			}
		})
	},
	/**
	 * 初始化表格
	 */
	init_table : function(datas) {
		var esay = $("#TableBox").easyTable({
			data : datas, // 初始数据，动态添加可以通过setData
			hideCheckbox : false, // 否显示复选框，获取复选框选择的数据用方法getCheckedItem
			rowClick : function(data) {// 行点击回调，参数为改行数据
				//module_js.editInfo(data);
			},
			rowDoubleClick : function(data) {// 行双击回调，参数为改行数据
				module_js.detailInfo(data.uuid);
			},
			columns : [ {// 表格结构配置
				title : "模块名称",// 列title文字
				field : "moduleName",// 该列对应数据哪个字段
				width : "10%"// 列宽度设置,不设也没什么
			}, {
				title : "模块类型",
				field : "moduleType",
				width : "12%",
				render : function(data) {
					if (data.modType == 0) {
						return "功能";
					} else {
						return "页面";
					}
				}
			}, {
				title : "模块链接",
				field : "moduleUrl",
				width : "30%",
				render : function(data) {
					if (data.moduleUrl == null) {
						return "";
					} else {
						return data.moduleUrl;
					}
				}
			}, {
				title : "模块备注",
				field : "moduleRemarks",
				width : "20%",
				render : function(data) {
					if (data.moduleRemarks == null) {
						return "";
					} else {
						return data.moduleRemarks;
					}
				}
			}, {
				title : "操作",
				// width : "20%",
				render : function(data) {

					return module_js.loadOperater(data);
				}
			} ]
		});
		module_js.Table_Obj = esay;
	},
	/**
	 * 加载方法
	 * 
	 * @param data
	 * @returns {String}
	 */
	loadOperater : function(data) {
		var html = "";
		html += '<a onclick="module_js.editInfo(\'' + data.uuid + '\')">查看</a>';
		html += '<a class="ml10" onclick="module_js.editInfo(\'' + data.uuid +'\')">编辑</a>';
		html += '<a class="ml10" onclick="module_js.deleteModuleByUuid(\'' + data.uuid +'\')">删除</a>';
		return html;
	},
	/**
	 * 检索
	 */
	 searchThis:function() {
		var pageSize = $("#page_size").val();
		var pageIndex = 1;
		var obj = {};
		obj.pageSize = pageSize;
		obj.pageIndex = pageIndex;
		var moduleName = $("#search_words").val();
		var othr = {};
		othr.moduleName = moduleName;
		othr.puuid = module_js.moudleTreeNodes.uuid;
		reset_serach(othr, obj);
	},
	/**
	 * 新增栏目
	 */
	 add:function() {
		var html = '';
		html += '<div class="ued_w">';
		html += '<dl class="clearfix">';
		html += '<dt>模块名称：</dt>';
		html += '<dd>';
		html += '<input type="text" class="text" placeholder="" id="modId" value="" style="display: none;">';
		html += '<input type="text" class="text" placeholder="" id="moduleName">';
		html += '</dd>';
		html += '</dl>';
		html += '<dl class="clearfix">';
		html += '<dt>模块链接：</dt>';
		html += '<dd>';
		html += '<input type="text" class="text" placeholder="" id="moduleUrl">';
		html += '</dd>';
		html += '</dl>';
		html += '<dl class="clearfix">';
		html += '<dt>模块类型：</dt>';
		html += '<dd style="float: left;margin-top: 7px;">';
		html += '<input type="radio" name="moduleType" value ="0" checked="checked"> 页面';
		html += '<input type="radio" name="moduleType" value ="1"> 功能';
		html += '</dd>';
		html += '</dl>';
		html += '<dl class="clearfix">';
		html += '<dt>模块图标：</dt>';
		html += '<dd>';
		html += '<input type="text" class="text" placeholder="" id="icon">';
		html += '</dd>';
		html += '</dl>';
		html += '<dl class="clearfix">';
		html += '<dt>模块备注：</dt>';
		html += '<dd>';
		html += '<input type="text" class="text" placeholder="" id="moduleRemarks">';
		html += '</dd>';
		html += '</dl>';
		html += '</div>';

		var title = "新增模块";
		var content = '<div style="padding: 20px 80px 20px;">设置后不可恢复，只能重新设置，请确认操作？</div>';
		var url = "/crm/module/addOrEditSave";
		AlertBox.confirm(html, title, module_js.addSave, url);
	},

	/**
	 * 新增保存
	 */
	 addSave:function(url) {
		var obj = {};
		obj.puuid = module_js.moudleTreeNodes.uuid;
		var id = $("#modId").val();
		if (id != "") {
			obj.id = id;
			obj.uuid = $("#moduuid").val();
		}
		obj.moduleName = $("#moduleName").val();
		obj.moduleUrl = $("#moduleUrl").val();
		obj.moduleType = $("input[name='moduleType']:checked").val();
		obj.icon = $("#icon").val();
		obj.moduleRemarks = $("#moduleRemarks").val();
		$.ajax({
			url : url, // 请求的url地址
			dataType : "json", // 返回格式为json
			async : false,// 请求是否异步，默认为异步，这也是ajax重要特性
			data : obj, // 参数值
			type : "post", // 请求方式
			success : function(data) {
				AlertBox.alert(data.info, "");
				if (data.status) {
					module_js.searchThis();
					module_js.initModuleTree();
				}
			},
			error : function() {
			}
		})
	},
	detailInfo:function(uuid){
		var obj = module_js.Table_Obj.getData();
		var data = {};
		$.each(obj,function(i,ite){
			if(ite.uuid==uuid){
				data = ite;
				return false;
			}
		});
		var html = '';
		html += '<div class="ued_w">';
		html += '<dl class="clearfix">';
		html += '<dt>模块名称：</dt>';
		html += '<dd>';
		html += '<input type="text" class="text" placeholder="" id="modId" value="'+data.id + '" style="display: none;">';
		html += '<input type="text" class="text" placeholder="" id="moduuid" value="'+data.uuid + '" style="display: none;">';
		html += '<input type="text" class="text" placeholder="" id="moduleName" value="' + data.moduleName + '"">';
		html += '</dd>';
		html += '</dl>';
		html += '<dl class="clearfix">';
		html += '<dt>模块链接：</dt>';
		html += '<dd>';
		var modUrl = data.moduleUrl == null ? "" : data.moduleUrl;
		html += '<input type="text" class="text" placeholder="" id="moduleUrl" value="' + modUrl + '"">';
		html += '</dd>';
		html += '</dl>';
		html += '<dl class="clearfix">';
		html += '<dt>模块类型：</dt>';
		html += '<dd style="float: left;margin-top: 7px;">';
		html += '<input type="radio" name="moduleType" value ="0""> 页面';
		html += '<input type="radio" name="moduleType" value ="1""> 功能';
		html += '</dd>';
		html += '</dl>';
		html += '<dl class="clearfix">';
		html += '<dt>模块图标：</dt>';
		html += '<dd>';
		var icon = data.icon == null ? "" : data.icon;
		html += '<input type="text" class="text" placeholder="" id="icon" value="' + icon + '"">';
		html += '</dd>';
		html += '</dl>';
		html += '<dl class="clearfix">';
		html += '<dt>模块备注：</dt>';
		html += '<dd>';
		var moduleRemarks = data.moduleRemarks == null ? "" : data.moduleRemarks;
		html += '<input type="text" class="text" placeholder="" id="moduleRemarks" value="' + moduleRemarks + '"">';
		html += '</dd>';
		html += '</dl>';
		html += '</div>';
		AlertBox.alert(html, "详情")
		$("input[name='moduleType'][value='" + data.moduleType + "']").attr("checked", true);
		$(".ued_w input").attr('readonly', 'readonly');
		$(".ued_w input").css('background-color', '#f8f8f8');
	},
	/**
	 * 编辑保存
	 * @param id
	 */
	editInfo:function(uuid) {
		
		var obj = module_js.Table_Obj.getData();
		var data = {};
		$.each(obj,function(i,ite){
			if(ite.uuid==uuid){
				data = ite;
				return false;
			}
		});
		var html = '';
		html += '<div class="ued_w">';
		html += '<dl class="clearfix">';
		html += '<dt>模块名称：</dt>';
		html += '<dd>';
		html += '<input type="text" class="text" placeholder="" id="modId" value="'+data.id + '" style="display: none;">';
		html += '<input type="text" class="text" placeholder="" id="moduuid" value="'+data.uuid + '" style="display: none;">';
		html += '<input type="text" class="text" placeholder="" id="moduleName" value="' + data.moduleName + '">';
		html += '</dd>';
		html += '</dl>';
		html += '<dl class="clearfix">';
		html += '<dt>模块链接：</dt>';
		html += '<dd>';
		var modUrl = data.moduleUrl == null ? "" : data.moduleUrl;
		html += '<input type="text" class="text" placeholder="" id="moduleUrl" value="' + modUrl + '">';
		html += '</dd>';
		html += '</dl>';
		html += '<dl class="clearfix">';
		html += '<dt>模块类型：</dt>';
		html += '<dd style="float: left;margin-top: 7px;">';
		html += '<input type="radio" name="moduleType" value ="0"> 页面';
		html += '<input type="radio" name="moduleType" value ="1"> 功能';
		html += '</dd>';
		html += '</dl>';
		html += '<dl class="clearfix">';
		html += '<dt>模块图标：</dt>';
		html += '<dd>';
		var icon = data.icon == null ? "" : data.icon;
		html += '<input type="text" class="text" placeholder="" id="icon" value="' + icon + '">';
		html += '</dd>';
		html += '</dl>';
		html += '<dl class="clearfix">';
		html += '<dt>模块备注：</dt>';
		html += '<dd>';
		var moduleRemarks = data.moduleRemarks == null ? "" : data.moduleRemarks;
		html += '<input type="text" class="text" placeholder="" id="moduleRemarks" value="' + moduleRemarks + '">';
		html += '</dd>';
		html += '</dl>';
		html += '</div>';

		var title = "编辑模块";
		var content = '<div style="padding: 20px 80px 20px;">设置后不可恢复，只能重新设置，请确认操作？</div>';
		var url = "/crm/module/addOrEditSave";
		AlertBox.confirm(html, title, module_js.addSave, url);
		$("input[name='moduleType'][value='" + data.moduleType + "']").attr("checked", true);
			
	},
	/**
	 * 批量删除
	 */
	batchDeleteModuleByUuidss:function(){
		
		var datas = Table_Obj.getCheckedItem();
		if (datas.length <= 0) {
			AlertBox.alert('请选择有效数据','提示');
		        return;
		}
		var arr = new Array();
		$.each(datas, function(key, val) {
			arr[key] = val.uuid;
		});
		var ids = arr.join(",");
	    module_js.deleteModuleByUuid(ids);
	},
	/**
	 * 删除
	 * @param id
	 */
	deleteModuleByUuid:function(uuid){
		var title = "确认消息";
		AlertBox.confirm('删除后不能恢复，请慎重！', title, module_js.sureDeleteModuleByUuIds, uuid);
	},

	/**
	 * 根据主键批量、单一删除
	 * @param uuids
	 */
	sureDeleteModuleByUuIds:function(uuids){
		$.ajax({
			url : "/crm/module/deleteModuleByUuids",
			dataType : "json",
			type : "post",
			data : {uuids:uuids},
			success : function(data) {
				AlertBox.alert(data.info,'消息');
				if (data.status) {
					module_js.initModuleTree();
					module_js.searchThis();
				}
			},
			error : function(result, status) {
				$box.promptBox("系统异常，请联系管理员！");
			}
		});
	}
}
